package thread;

/**
 * @author 老安
 * @data 2022/6/21 20:18
 * 多线程
 * 多线程可以并发执行多个任务
 * 线程的第一种创建方式:
 *  1:创建一个线程类,继承Thread类
 *  2:在线程类中重写run方法
 *  3:在run方法中写线程要执行的任务
 *  4:实例化线程类对象
 *  5:线程类对象调用方法start()启动线程
 * 优点:结构简单
 * 缺点:由于java中是单继承,此种方法已经继承了Thread,就无法再继承别的类了,
 * 对于今后的实际开发造成很多不便
 */
public class ThreadDemo1 {
    public static void main(String[] args) {
        MyThread1 t1 = new MyThread1();
        MyThread2 t2 = new MyThread2();
        /*
         * 注意:启动线程不能调用run方法,因为run方法就是普通一个方法,
         * 必须调用start方法,调用start方法后,线程便会纳入线程调度器,
         * 一旦它被分到CPU时间片,就会开始自动执行线程中的run方法
         */
        t1.start();
        t2.start();
    }
}
//Thread 线程的超类
class MyThread1 extends Thread{
    //run方法是Thread类中定义的
    @Override
    public void run() {
        for(int i=0;i<1000;i++){
            System.out.println("你是谁啊?");
        }
    }
}
class MyThread2 extends Thread{
    //run方法是Thread类中定义的
    @Override
    public void run() {
        for (int i = 0; i < 1000; i++) {
            System.out.println("开门,我是查水表的!");
        }
    }
}